package ww;

public class J09_While {

	/*

				반복문(loop)
				가끔 어떤 동작을 여러 번 수행해야 할 때가 있음
				코드를 복사해서 반복을 해도 해결되지 않는 문제 발생
				반복횟수가 5번이면 코드 줄수도 5줄 작성
				코드내 내용이 수정되면 그 사본도 수정
				
				이것에 대한 현명한 방법은 반복문 안에 코드를 넣는 것
				즉, 반복할 코드를 한줄만 작성하고 컴파일러에게 
				이 코드를 몇번이고 반복실행하라고 지시할 수 있음
				
				반복문의 종류
				while, do-while, for
				
				while형식
				while(조건식){
							문장;
				}
				조건식의 결과가 참이면 블록 안의 문장이 실행되고 다시, 조건식을 검사
				따라서, 반복 실행을 중단하려면 조건식의 결과가 거짓이 되도록 만들거나
				break 문을 사용하면 됨
				(몇번 반복할 것인가를 모르고 함)
				
				반복문의 처리 과정을 단계별로 파악하려면
				통합개발환경의 디버깅 기능을 이용하면 됨
				
				break, continue
				break 문은 while, do-while, for 문의 반복실행을 중단하기 위해 사용
				break 문을 아무대나 사용하면 컴파일 오류 발생
				continue 문은 while, do-while, for 문의 현재 반복을 중단하고
				다음 반복의 시작으로 제어를 넘김

	 */
	public static void main(String[] args) {
		//반복 처리문을 사용하지 않았을 때
		System.out.println("ㅋㅋ");
		System.out.println("ㅋㅋ");
		System.out.println("ㅋㅋ");
		System.out.println("ㅋㅋ");
		System.out.println("ㅋㅋ");
		
		//문제 1.반복문을 사용하지 않고 '시간은 금이라구, 친구!!'라는 문장을 5번 반복 출력
		System.out.println("시간은 금이라구, 친구");
		System.out.println("시간은 금이라구, 친구");
		System.out.println("시간은 금이라구, 친구");
		System.out.println("시간은 금이라구, 친구");
		System.out.println("시간은 금이라구, 친구");
		
		//반복문을 이용하면 다음과 같음
		
		int count = 1;
		
		while( count <= 10 ){
			System.out.println("시간은 금이라구, 친구");
			count = count + 1;
		}
		
		
		//문제 2. 반복문을 사용하지 않고 1~10까지 출력하는 프로그램
		
		System.out.println(1);
		System.out.println(2);
		System.out.println(3);
		System.out.println(4);
		System.out.println(5);
		System.out.println(6);
		System.out.println(7);
		System.out.println(8);
		System.out.println(9);
		System.out.println(10);
		
		
		//반복문을 사용하고 1~10까지 출력하는 프로그램
		int co = 1;
		
		while(co <= 10){
			System.out.println(co);
			++co;												//co = co + 1;
		}
		
		
		// 문제 3 : 반복문을 이용해서
		// 구구단의 19단을 출력 해봄
		
		int ggg = 1;
		while( ggg < 20){
			System.out.println("19 * " + ggg + "=" + 19 * ggg);
			++ggg;
		}
		
		//문제 4 : 반복문과 break를 이용해서 1 ~ 10까지 출력하는 프로그램
		
		int tre = 1;
		while(tre <= 10){
			System.out.println(tre);
			++tre;	
		}				//break를 사용하지 않음
		
		int tr = 1;
		while(true){
			if(tr > 10) break;
			System.out.println(tr);
			++tr;	
		}				//break를 사용함
		
		//문제 5 : 반복문과 continue를 이용해서 1 ~ 10 까지 출력하는 프로그램
		//			  단 5는 출력하지 않음
		
		int te = 1;
		while(te <= 10){
			if(te  != 5)
			System.out.println(te);
			++te;	
		}				//continue 를 사용하지 않았을 때
		
		int ta = 1;
		while(ta <= 10){
			if(ta  == 5) {++ta; continue;}
			System.out.println(ta);
			++ta;	
		}				//continue 를 사용 했을 때
		
		//문제 6 : 1 ~ 100 사이에 짝수만 출력하는 프로그램
		int tc = 1;
		while(tc <= 100){
			if(tc % 2 == 0)
			System.out.println(tc);
			++tc;	
		}
		
		
		//문제 6 : 1 ~ 100 사이에 홀수만 출력하는 프로그램
		int tz = 1;
		while(tz <= 100){
			if(tz % 2 == 1)
			System.out.println(tz);
			++tz;	
		}
		
	}
}
